/*
 * utils.c
 *
 *  Created on: Jun 30, 2010
 *      Author: fify
 */
#include <stdint.h>
#include <stdio.h>
#include "net/utils/color.h"
#include "net/utils/utils.h"

static void set_font_color(int color)
{
	printf("\033[%dm", color);
}

static void set_background_color(int color)
{
	printf("\033[%dm", color);
}

static void set_color(int color)
{
	printf("\033[%dm", color);
}

static void clear_color(void)
{
	printf("\033[0m");
}

void print_packet(uint8_t *pkt, int len, int color)
{
	int i;
	uint8_t * buf = pkt;
	int size = len;

	set_color(color);
	set_color(1);

	printf("packet size: %d\n", (int)size);
	printf("---------- Data ----------\n");
	for (i = 0; i < size; i++)
	{
		if (i && i % 8 == 0)
		{
			printf(" ");
		}
		if (i && i % 16 == 0)
			printf("\n");
		printf("%02x ", buf[i]);
	}
	printf("\n");
	for (i = 0; i < size; i++)
	{
		if (i && i % 8 == 0)
		{
			printf(" ");
		}
		if (i && i % 16 == 0)
			printf("\n");
		if (buf[i] >= 0x21 && buf[i] < 0x7f)
			printf("%c", buf[i]);
		else
			printf("%c", '.');
	}
	printf("\n---------- Data ----------\n");

	clear_color();
}
